// pages/profile/index.ts
Page({
  data: {
    avatar: '',
    nickName: ''
  },
  async onLoad() {
    // 调用接口获取昵称和头像
    const { code, data: { avatar, nickName } } = await wx.http.get('/userInfo')
    // 检测接口是否正常返回结果
    if (code !== 10000) return wx.utils.toast()
    // 渲染数据
    this.setData({ avatar, nickName })
  },
  // 获取名字
  getUserNickname(e) {
    this.updateNickname(e.detail.value)
  },
  // 更新昵称接口
  async updateNickname(nickName) {
    if (!nickName) return
    // 调用接口更新名字
    const { code } = await wx.http.put('/userInfo', { nickName })
    // 检测接口是否调用成功
    if (code !== 10000) return wx.utils.toast('更新昵称失败!')
  },
  // 获取头像
  getUserAvatar(e) {
    // 更新用户头像
    this.updateAvatar(e.detail.avatarUrl)
    this.setData({ avatar: e.detail.avatarUrl })
  },
  // 更新用户头像接口
  async updateAvatar(avatar) {
    wx.uploadFile({
      filePath: avatar,
      name: 'file',
      url: wx.http.baseURL + '/upload',
      formData: { type: 'avatar' },
      header: {
        // 用户登录状态
        Authorization: 'Bearer ' + getApp().token
      },
      success: (res) => {
        // 处理返回的数据
        const { code } = JSON.parse(res.data)
        if (code !== 10000) return wx.utils.toast('上传头像失败!')
      }
    })
  }
})